package JDBC;

import com.jcraft.jsch.*;

import java.io.File;
import java.net.DatagramSocket;

public class SFTPSender1 {
    public static void main(String[] args) throws JSchException {
        String host = "8.130.104.107";
        String username = "root";
        String password = "G180813y";
        String remoteFilePath = "/www/wwwroot/root/";
        int port = 22; // SFTP默认端口
        JSch jsch = new JSch();
        Session session = jsch.getSession(username, host, port);
        session.setConfig("StrictHostKeyChecking", "no"); // 跳过主机密钥检查
        session.setPassword(password);
        session.connect();
        // 创建sftp通信通道
        ChannelSftp channelSftp = (ChannelSftp) session.openChannel("sftp");
        // 建立sftp通道的连接
        channelSftp.connect();
        load(channelSftp,remoteFilePath,session);
    }
    public static void load(ChannelSftp channelSftp, String remoteFilePath, Session session){
        /*
        上传E:\text文件夹 以及 文件夹下所有文件 上传到服务器的/www/wwwroot/root文件夹下
        步骤；
        1.获取本地文件夹下所有文件
        2.遍历所有文件
        3.判断是否是文件夹
        4.如果是文件夹，递归调用
        5.如果是文件，上传

         */
        String localFilePath = "E:\\text";
        File file = new File(localFilePath);
        File[] files = file.listFiles();
        for (File file1 : files) {
            if (file1.isDirectory()){
                load(channelSftp,remoteFilePath,session);
            }else {
                try {
                    channelSftp.put(file1.getAbsolutePath(),remoteFilePath);
                } catch (SftpException e) {
                    e.printStackTrace();
                }
            }
    }
}
}


